home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Source Code
/
Libraries
/
DCLAP 6d
/
dclap6d
/
network
/
ncsasock
/
s_file.h
< prev
next >
Wrap
Text File
|
1996-07-05
|
3KB
|
83 lines
/*
* Copyright (c) 1982, 1986, 1989 Regents of the University of California.
* All rights reserved.
*
* Redistribution is only permitted until one year after the first shipment
* of 4.4BSD by the Regents. Otherwise, redistribution and use in source and
* binary forms are permitted provided that: (1) source distributions retain
* this entire copyright notice and comment, and (2) distributions including
* binaries display the following acknowledgement: This product includes
* software developed by the University of California, Berkeley and its
* contributors'' in the documentation or other materials provided with the
* distribution and in all advertising materials mentioning features or use
* of this software. Neither the name of the University nor the names of
* its contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* @(#)file.h 7.6 (Berkeley) 6/28/90
*/
#ifdef KERNEL
#include "fcntl.h"
#include "unistd.h"
/*
* Descriptor table entry.
* One for each kernel object.
*/
struct file {
int f_flag; /* see below */
#define DTYPE_VNODE 1 /* file */
#define DTYPE_SOCKET 2 /* communications endpoint */
short f_type; /* descriptor type */
short f_count; /* reference count */
short f_msgcount; /* references from message queue */
struct ucred *f_cred; /* credentials associated with descriptor */
struct fileops {
int (*fo_read)();
int (*fo_write)();
int (*fo_ioctl)();
int (*fo_select)();
int (*fo_close)();
} *f_ops;
caddr_t f_data; /* inode */
off_t f_offset;
};
struct file *file, *fileNFILE;
int nfile;
/* convert O_RDONLY/O_WRONLY/O_RDWR to FREAD/FWRITE */
#define FOPEN (-1)
#define FREAD 1
#define FWRITE 2
/* kernel only versions -- deprecated, should be removed */
#define FCREAT O_CREAT
#define FDEFER O_DEFER
#define FEXCL O_EXCL
#define FEXLOCK O_EXLOCK
#define FMARK O_MARK
#define FSHLOCK O_SHLOCK
#define FTRUNC O_TRUNC
/* bits to save after open */
#define FMASK (FREAD|FWRITE|O_APPEND|O_ASYNC|O_NONBLOCK)
/* bits not settable by fcntl(F_SETFL, ...) */
#define FCNTLCANT (FREAD|FWRITE|O_DEFER|O_EXLOCK|O_MARK|O_SHLOCK)
#else
#include <s_fcntl.h>
#include <s_unistd.h>
#endif
/* operation for lseek(2); renamed by POSIX 1003.1 to unistd.h */
#define L_SET 0 /* set file offset to offset */
#define L_INCR 1 /* set file offset to current plus offset */
#define L_XTND 2 /* set file offset to EOF plus offset */